module hip.hipaudio.backend.opensles.clip; version(Android): import hip.hipaudio.backend.sles; import hip.hipaudio.audioclip; import hip.audio_decoding.audio; class HipOpenSLESAudioClip : HipAudioClip { this(IHipAudioDecoder decoder, HipAudioClipHint hint){super(decoder, hint);} this(IHipAudioDecoder decoder, HipAudioClipHint hint, uint chunkSize){super(decoder, hint, chunkSize);} override public uint loadStreamed(in ubyte[] data, HipAudioEncoding encoding) { uint ret = super.loadStreamed(data, encoding); if(ret != 0) { HipAudioBuffer sliBuf = getBuffer(getClipData(), chunkSize); setBufferAvailable(sliBuf); hasBuffer = true; } return ret; } override void onUpdateStream(ubyte[] data, uint decodedSize){} /** Allocates SLIBuffer* in the wrapper*/ override HipAudioBufferWrapper createBuffer(ubyte[] data) { HipAudioBufferWrapper w; w.buffer.sles = sliGenBuffer(null, data.length); //Null init buffer hasBuffer = true; return w; } override void destroyBuffer(HipAudioBuffer* buffer) { sliDestroyBuffer(buffer.sles); } override void setBufferData(HipAudioBuffer* buffer, ubyte[] data, uint size) { sliBufferData(buffer.sles, data); } bool hasBuffer; }